<?php
/*----------------------------------------------------------------------*
 * コンポーネント名 : 独自バリデータクラス
 * 最新バージョン   : v1.0
 * 作成日           : 2012/08/11
 * 担当者           : 野島賢三
 * 内容             : 新規作成
 *【改訂履歴】
 *----------------------------------------------------------------------*/
class ValidateFormComponent extends Component {

	function __construct(){

	}
	/**
	 * テキストのバリデータ.<br>
	 * <<バリデートタイプ>><br>
	 * ①$validateType['required'] : 必須項目
	 * ②$validateType['halfChar']
	 *
	 * @param 入力値 $input
	 * @param バリデートタイプ $validateType
	 * @param 項目名 $name
	 * @param エラーメッセージ $error
	 * @return チェック結果 boolean
	 */
	function checkText ($input, $validateType, $name, array &$error) {
		if(!empty($validateType)) {
			if ($validateType['required']) {
				// 必須項目チェック
				if (empty($input) || $input == '') {
					$checkResult = FALSE;
					array_push($error, $name.REQUIRED);
				} else {
					$checkResult = TRUE;
				}
			} else if ($validateType['halfChar']) {
				$pattern = '/[¥w]+/';
				// 半角英数字チェック
				if (preg_match($pattern, $input)) {
					$checkResult = FALSE;
					array_push($error, $name.HALF_CHAR);
				} else {
					$checkResult = TRUE;
				}
			}
		}
		return $checkResult;
	}

	/**
	 * 実在日チェックを行う.<br>
	 *
	 * @param 入力値			$input
	 * @param バリデートタイプ 	$validateType
	 * @param 項目名	 		$name
	 * @param エラーメッセージ	$error
	 * @return チェック結果		boolean
	 */
	function checkDate ($input, $validateType, $name, array &$error) {
		// 入力値「yyyy-mm-dd」を「-」で分割
		$date = explode ('-', $input);
		// 年
		$y = $date[0];
		// 月
		$m = $date[1];
		// 日
		$d = $date[2];
		if (!empty($validateType)) {
			if ($validateType['true_date']) {
				// 実在日のチェック
				if (!checkdate($m, $d, $y)) {
					$checkResult = FALSE;
					array_push($error, $name.TRUE_DATE);
				} else {
					$checkResult = TRUE;
				}
			}
		}
		return $checkResult;
	}
}